/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.unmsm.ceiebt.daos;

import com.unmsm.ceiebt.beans.UsuarioBean;
import com.unmsm.ceiebt.utiles.Encriptacion;
import java.beans.PropertyChangeSupport;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

/**
 *
 * @author Davis
 */
public class Conexion {
public static final String PROP_SAMPLE_PROPERTY = "sampleProperty";
    java.sql.Statement operacion;
    private String sampleProperty;
    private static final Conexion conexion = new Conexion();
    ResultSet respuesta;
    private PropertyChangeSupport propertySupport;
    PreparedStatement comando;


    String url;
    Connection con;
     //puerto de conexion 5432

    /** Creates a new instance of Conexion */
    public Conexion() {

        try{
            Class.forName("org.postgresql.Driver").newInstance ();
        }catch(Exception e){
            System.out.println("No se pudo establecer la conexion a la base de datos");
        }
        url="jdbc:postgresql://localhost:5432/ECIEBT";
        try{
            con=DriverManager.getConnection(url,"postgres","admin");
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

    public Conexion(String url) {
        try{
            Class.forName("org.postgresql.Driver").newInstance ();
        }catch(Exception e){
            System.out.println("No se pudo establecer la conexion a la base de datos");
        }
        try{
            con=DriverManager.getConnection(url,"postgres","admin");
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

    public synchronized java.sql.Connection getCon(){
        return con;
    }

     public void terminar() throws SQLException{
        con.close();
    }

    public static Conexion getInstance() {
        return conexion;
    }

      public ResultSet select( String sql ) {
        ResultSet rs = null;
        try{
           // Conexion cone = new Conexion();
            operacion = con.createStatement();
            rs = operacion.executeQuery(sql);
        }
        catch( SQLException sqle ) {
            sqle.printStackTrace();
        }
        return rs;
    }


      public UsuarioBean validarUsuario(UsuarioBean objP_usuarioValidacion) {
        UsuarioBean objL_UsuarioValidado= new UsuarioBean();
        //Vector documentos= new Vector();
        //Parametro parametro=null;
        String  sentencia="select * from comtb_usuario  " +
                    "WHERE usuarv_usuario = '"+objP_usuarioValidacion.getStrL_usuario()+
                    "' AND usuarv_clave = '"+Encriptacion.contrasena(objP_usuarioValidacion.getStrL_clave())+"'";

       // System.out.println("patrocinador "+Encriptacion.contrasena("patrocinador"));
      //  System.out.println("empresa "+Encriptacion.contrasena("empresa"));
        respuesta = select(sentencia);
        try {
            while(respuesta.next()){
                   //System.out.println("int: "+respuesta.getInt(1));
                    objL_UsuarioValidado.setStrL_tipoUser(respuesta.getString("tiusuv_cod_tipo_usuario"));
                    objL_UsuarioValidado.setStrL_usuario(respuesta.getString("usuarv_usuario"));
                     objL_UsuarioValidado.setStrL_tipoUser(respuesta.getString("tiusuv_cod_tipo_usuario"));

               }

              respuesta.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }


        return objL_UsuarioValidado;

    }
    
}
